// pages/ranking/ranking.js
//连接数据库
const db = wx.cloud.database();
const user_table=db.collection('user_table');
const _ = db.command
//用全局变量
var app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
userList:[],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {


this.getUserList()

  },
//获取排行榜信息

// 10次以上的才能进榜
// doc获得10次以上的人数共有多少
// 计算需要循环次数
// 然后循环从user表中取出数据
// 再循环计算出胜率 存入表中 
// 再按胜率排序 截取前十名 
// setData即可
  getUserList(e){

    user_table.where({

       joinNumber:_.gte(10)
  
    }).count({
      success:(res)=>{
       //计算从数据库取数据次数 一次只能取20条
        console.log(res.total)
        let people=res.total
        let a=parseInt(people/20)
         
         if(people%20!=0){ var b=1}
         else{b=0}
        let number=a+b
      console.log('循环次数'+number)
     //循环从数据库中取出所有预测成功的
     let x=0
     for(let i=0;i<number;i++){

      console.log(i)
      user_table.where({
        joinNumber:_.gte(10)
      }).skip(i*20).get({
        success:(res)=>{
          console.log(res.data)
        //用x来判断是否循环了number次了
          x++
        
          let arr=this.data.userList
       //扩展运算符合并数组
          arr.push(...res.data)

        if(x==number){
           
          this.setData({
            userList:arr,  
          })
          console.log(this.data.userList)

    var list=this.data.userList
    //再计算出每个人的胜率
    let lastList=[]
    list.forEach((item, index) => {

     lastList.push({
   
      userPhoto:item.userPhoto,
    userName:item.userName,
    successPer: (parseFloat( (item.successNumber/item.joinNumber).toFixed(3))*100).toFixed(1),
    joinNumber:item.joinNumber,

     })
   
    })
    // 再按胜率排序 截取前十名 
    function sortBy(props) {
      return function(a,b) {
          return a[props] - b[props];
      }
  }
  lastList.sort(sortBy("successPer"))
  lastList.reverse().slice(0,10)
  
//setData即可显示
    this.setData({
      lastList:lastList,
    })
    console.log(lastList)

        }//if(x==number)
     
        },
        fail(err) {
       console.log('取数据失败') 
        }    
        })
     }  
  
  
  
  
  
  
         
  
       
      }
          
      })




   

  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})